using System;
using System.Collections.Generic;
using System.Text;

namespace vXCopy
{
	public class CmdLineSettingLib
	{
		string _fromFolder = "";
		string _destFolder = "";
		string _fromFile = "";
		string _destFile = "";
		string _includeFiles = "*.*";
		string _excludeFiles = "";
		string _includeFolders = "*.*";
		string _excludeFolders = "";

		int _maxthreads = 4;
		int _nBufferSize = 4096;
		bool _copySubFolder = true;
		bool _forceCopy = true;
		bool _purgeCopy = true;

		public string fromFolder
		{
			get { return _fromFolder; }
			set
			{
				lock (this)
				{
					_fromFolder = value;
				}
			}
		}

		public string destFolder
		{
			get { return _destFolder; }
			set
			{
				lock (this)
				{
					_destFolder = value;
				}
			}
		}

		public string fromFile
		{
			get { return _fromFile; }
			set
			{
				lock (this)
				{
					_fromFile = value;
				}
			}
		}

		public string destFile
		{
			get { return _destFile; }
			set
			{
				lock (this)
				{
					_destFile = value;
				}
			}
		}

		public string IncludeFiles
		{
			get { return _includeFiles; }
			set
			{
				lock (this)
				{
					_includeFiles = value;
				}
			}
		}

		public string IncludeFolders
		{
			get { return _includeFolders; }
			set
			{
				lock (this)
				{
					_includeFolders = value;
				}
			}
		}

		public string ExcludeFiles
		{
			get { return _excludeFiles; }
			set
			{
				lock (this)
				{
					_excludeFiles = value;
				}
			}
		}

		public string ExcludeFolders
		{
			get { return _excludeFolders; }
			set
			{
				lock (this)
				{
					_excludeFolders = value;
				}
			}
		}

		public int MaxThreads
		{
			get { return _maxthreads; }
			set
			{
				lock (this)
				{
					_maxthreads = value;
				}
			}
		}

		public int nBufferSize
		{
			get { return _nBufferSize; }
			set
			{
				lock (this)
				{
					_nBufferSize = value;
				}
			}
		}

		public bool copySubFolder
		{
			get
			{
				return _copySubFolder;
			}
			set
			{
				_copySubFolder = value;
			}
		}

		public bool ForceCopy
		{
			get
			{
				return _forceCopy;
			}
			set
			{
				_forceCopy = value;
			}
		}

		public bool PurgeCopy
		{
			get
			{
				return _purgeCopy;
			}
			set
			{
				_purgeCopy = value;
			}
		}
	}
}
